package br.ufrj.ppgi.greco.activitylifecycle;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity
{
	
	/** Chamado quando uma activity é criada pela primeira vez. É nela que você pode fazer a configuração estática, por exemplo, 
	 * vincular dados com um Bundle, criar view etc. Após sua execução sucedida, sempre será chamado o onStart().
	 */
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState); 
		Log.d("MINHATAG","FUI CRIADO");
	}
	
	

	/**Chamado quando uma activity está se tornando visível para o usuário. Vai para o método onResume().*/
	@Override
	protected void onStart()  
	{
		super.onStart();
		Log.d("MINHATAG","FUI INICIADO");
	}
	
		
	/**Chamado quando a activity começa a interagir com o usuário. Sua activity está no topo da pilha de activities, com a entrada do
	  *usuário apontando para ele.
	 */
	@Override
	protected void onResume() 
	{
		super.onResume();
		Log.d("MINHATAG","FUI RESUMIDO :P");
	}
	
	
	/**Chamado quando o sistema está prestes a retomar uma activity anterior. É normalmente utilizado para confirmar alterações não salvas,
	 * por exemplo, persistência de dados, animações etc. Uma observação: a implementação deste método deve ser rápida, porque a próxima
	 * atividade não será retomada até que esse método retorne, ou finalize. Vai para onResume() se a activity vai para frente
	 * “back to the front”  ou onStop se for tornada invisível para o usuário.
	 */
	@Override
	protected void onPause() 
	{
		super.onPause();
		Log.d("MINHATAG","ESTOU DE FERIAS");
	}

	
	
	/**Chamado sempre quando uma activity é interrompida antes de ser iniciada novamente.  Após sua execução sucedida, sempre será chamado o
	 * onStart().
     */
	@Override
	protected void onRestart()
	{
		super.onRestart();
		Log.d("MINHATAG","VOLTEI A ATIVA");
	}
	
	
	
	/**Chamado quando a activity já não é visível para o usuário, porque outra activity foi retomada e está cobrindo esta. Isto pode acontecer se,
	 * uma nova acitivity esta sendo criada, se a activity já criada está trazendo outra activity à frente desta ou se a activity principal está sendo
	 * destruída.  Vai para onRestart() se a acitivy está voltando para interagir com o usuário,  vai para onCreate() caso seja criado uma nova activity
	 * ou vai para onDestroy() se essa activity está sendo fechada.
	 * */
	@Override
	protected void onStop()
	{
		super.onStop();
		Log.d("MINHATAG","TOTALMENTE PARALISADO");		
	}


	
	/** Destrói a acitivty para liberar espaço em memória.*/
	@Override
	protected void onDestroy()
	{
		super.onDestroy();
		Log.d("MINHATAG","FUI DESTRUIDO");
	}
	

	
	/**Imagine que uma Activity "A" chama  uma Activity "B" (veremos como fazer isso mais a frente), quando "B" termina de fazer seu papel pode retornar um
	 * Intent com objetos de dados para "A", é neste método que a "A" irá recuperar os dados enviados por "B" 
 	 */
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data)
	{ 
		super.onActivityResult(requestCode, resultCode, data);
		Log.d("MINHATAG","E AGORA JOSE, O QUE VOCÊ ME RETORNA?");	
	}

}